package com.anti.modular.bus.busrealestate.service;

import com.anti.commom.api.Result;
import com.anti.jdbc.support.page.PageParam;
import com.anti.jdbc.support.page.PageResult;
import com.anti.modular.bus.busrealestate.entity.BusRealEstate;
import com.anti.modular.bus.busrealestate.param.BusRealEstateParam;
import com.anti.modular.bus.busrealestate.result.BusRealEstateResult;
import com.anti.modular.bus.busrealestate.result.excel.StateExcel;
import com.anti.modular.bus.busrealestate.result.tree.RealEstateResult;
import com.anti.modular.bus.busrealestate.result.tree.RoomItemResult;
import com.anti.modular.bus.busrealestate.result.tree.RoomListResult;
import com.anti.modular.bus.busroom.entity.BusRoom;

import java.util.List;

/**
 * 房产service接口
 *
 * @author anti
 * @date 2021-04-12 19:05:27
 */
public interface BusRealEstateService{

    /**
    * 根据主键查询实体
    */
    BusRealEstate getById(BusRealEstateParam busRealEstateParam);

    /**
     * 查询房产
     *
     * @author anti
     * @date 2021-04-12 19:05:27
     */
    PageResult page(PageParam pageParam,BusRealEstateParam busRealEstateParam);

    /**
     * 房产列表
     *
     * @author anti
     * @date 2021-04-12 19:05:27
     */
    List<BusRealEstateResult> list(BusRealEstateParam busRealEstateParam);

    List<BusRealEstateResult> fsslist(BusRealEstateParam busRealEstateParam);

    List<RealEstateResult> getStateList(BusRealEstateParam busRealEstateParam);

    List<RealEstateResult> getAllStateList();

    List<RoomListResult> getStateRoomList(BusRealEstateParam busRealEstateParam);
    List<BusRoom> getStateRoomListByStateId(Long  id);

    /**
     * 添加房产
     *
     * @author anti
     * @date 2021-04-12 19:05:27
     */
    void add(BusRealEstateParam busRealEstateParam);

    /**
     * 删除房产
     *
     * @author anti
     * @date 2021-04-12 19:05:27
     */
    Result delete(BusRealEstateParam busRealEstateParam);

    /**
     * 编辑房产
     *
     * @author anti
     * @date 2021-04-12 19:05:27
     */
    void edit(BusRealEstateParam busRealEstateParam);

    /**
     * 查看房产
     *
     * @author anti
     * @date 2021-04-12 19:05:27
     */
     BusRealEstate detail(BusRealEstateParam busRealEstateParam);
    /**
     * 根据类型ID查看房产
     *
     * @author anti
     * @date 2021-04-12 19:05:27
     */
    Result detailByType(BusRealEstateParam busRealEstateParam);

    List<StateExcel> getExportData();
}
